#!/bin/bash

# lanxAI 部署脚本
# 用于将 lanxAI 网站部署到服务器

echo "开始部署 lanxAI 网站..."

# 检查是否以root权限运行（如果需要）
if [ "$EUID" -ne 0 ]; then
  echo "警告: 建议以root权限运行此脚本以确保正确设置权限"
fi

# 设置变量
PROJECT_DIR="/var/www/lanxai"
BACKUP_DIR="/var/backups/lanxai-$(date +%Y%m%d_%H%M%S)"

# 检查源目录是否存在
SOURCE_DIR="/home/admin/workspace/ai-website"
if [ ! -d "$SOURCE_DIR" ]; then
  echo "错误: 源目录 $SOURCE_DIR 不存在"
  exit 1
fi

# 创建项目目录（如果不存在）
if [ ! -d "$PROJECT_DIR" ]; then
  echo "创建项目目录: $PROJECT_DIR"
  mkdir -p "$PROJECT_DIR"
fi

# 如果目标目录已存在内容，创建备份
if [ -n "$(ls -A $PROJECT_DIR)" ]; then
  echo "创建备份到: $BACKUP_DIR"
  mkdir -p "$BACKUP_DIR"
  cp -r "$PROJECT_DIR"/* "$BACKUP_DIR/" 2>/dev/null || true
  echo "备份完成"
fi

# 复制文件到目标目录
echo "复制文件到 $PROJECT_DIR..."
cp -r "$SOURCE_DIR"/* "$PROJECT_DIR/"

# 设置适当的权限
echo "设置文件权限..."
chown -R www-data:www-data "$PROJECT_DIR"
chmod -R 755 "$PROJECT_DIR"
chmod -R 777 "$PROJECT_DIR/users"  # 用户目录需要写权限
chmod 600 "$PROJECT_DIR/config/config.php" 2>/dev/null || true  # 配置文件应为私有
chmod 600 "$PROJECT_DIR/config/admin.php" 2>/dev/null || true  # 管理员配置文件应为私有

# 检查PHP是否安装
if ! command -v php &> /dev/null; then
  echo "警告: PHP 未安装。请先安装PHP以运行此应用。"
else
  echo "PHP 已安装: $(php --version | head -n1)"
fi

# 检查cURL扩展是否可用（API请求需要）
if php -m | grep -q "curl"; then
  echo "cURL 扩展已安装"
else
  echo "警告: PHP cURL 扩展未安装。API请求将无法工作。"
  echo "安装方法 (Ubuntu/Debian): sudo apt-get install php-curl"
fi

# 检查Web服务器
if command -v apache2 &> /dev/null; then
  echo "Apache 已安装"
  WEB_SERVER="apache"
elif command -v nginx &> /dev/null; then
  echo "Nginx 已安装"
  WEB_SERVER="nginx"
else
  echo "警告: 未检测到 Apache 或 Nginx。请安装Web服务器以运行此应用。"
fi

# 显示部署完成信息
echo ""
echo "部署完成！"
echo ""
echo "网站已部署到: $PROJECT_DIR"
echo ""
echo "要访问网站，请执行以下操作："
echo "1. 确保已安装并运行Web服务器 (Apache 或 Nginx)"
echo "2. 确保PHP和cURL扩展已安装"
echo "3. 将Web服务器文档根目录指向 $PROJECT_DIR"
echo "4. 访问 http://your-server-ip/install.php 进行初始安装"
echo ""
echo "管理面板: http://your-server-ip/admin/"
echo "移动版: http://your-server-ip/mobile.php"
echo ""
echo "安全提示："
echo "- 请确保 config/ 目录无法通过Web访问"
echo "- 定期备份用户数据: $PROJECT_DIR/users/"
echo "- 保护好管理员账户和API密钥"
